A-API调用概述

一、API调用概述

此章节主要从 XAPP SDK 的最简单的使用流程上介绍如何快速使用 XAPP SDK,包括了 XAPP SDK 最简单的初始化以及基本流程中常用的任务简单介绍与使用。

二、XAPP SDK简单初始化

XAPP SDK 初始化的参数有相对较多的可选参数,可以根据需要设置使用。这里介绍最简单的初始化过程(使用默认参数初始化使用)。

//使用默认参数初始化
XLinkConfig config = new XLinkConfig.Builder().build();
XLinkAndroidSDK.init(config);
 
//启动并运行SDK
XLinkSDK.start();
 
//停止当前SDK
XLinkSDK.stop();
//退出用户登录状态,清除用户信息,并停止当前SDK
XLinkSDK.logoutAndStop();

XAPP SDK 启动后即可进行相关功能使用。

三、基本流程任务使用

XAPP SDK 中提供了多个模块与功能,以下仅从最常见的使用流程进行基本介绍。最常见的使用流程为:

登录账号->扫描设备->添加订阅设备->设备控制->移除设备(->同步设备列表)

1、登录账号

登录账号使用XLinkUserAuthorizeTask,使用注册到的 APP 账号进行登录,该账号可通过 demo 注册进行获取;登录时需要 CropId,即企业ID,获取方式请参考资源准备

XLinkUserAuthorizeTask authTask = XLinkUserAuthorizeTask.newBuilder()
    //设置登录账号所属的企业ID
    .setCorpId("xxxx")
    //不管是手机还是邮箱登录,都可以设置上去,登录时并不区分是手机还是用邮箱
    .setPhone("13813813800", "123456")
    //如果需要设置手机区号则设置,默认为中国大陆手机区号+86,非中国手机号则需要设置
    .setPhoneZone("+86")
    .setEmail("test@xlink.cn","123456")
    .setListener(new TaskListXLinkTaskListnerener<UserAuthApi.UserAuthResponse>() {
            @Override
            public void onError(XLinkCoreException xLinkErrorCode) {
            }
             
            @Override
            public void onStart() {
            }
             
            @Override
            public void onComplete(UserAuthApi.UserAuthResponse result) {
                //登录成功返回用户信息结果
            }
    })
    .build();
XLinkSDK.startTask(authTask);

2、扫描设备

扫描设备使用XLinkScanDeviceTask,扫描设备需要使用到设备的 ProductId,即产品ID,获取方式请参考资源准备

XLinkScanDeviceTask scanTask = XLinkScanDeviceTask.newBuilder()
        // 设置超时,单位毫秒,默认90秒, 建议使用60-90秒,根据需要可适当调整
        .setTotalTimeout(60000)
        //设置扫描的目标PID,可同时设置多个,不支持null与空字符串
        .setProductIds("xxx","xxx")
        //设备搜索回调
        .setScanDeviceListener(new XLinkScanDeviceListener() {
            @Override
            public void onScanResult(XDevice xDevice) {
                // 同一设备默认仅会回调一次
            }
 
            @Override
            public void onError(XLinkCoreException xLinkErrorCode) {
            }
 
            @Override
            public void onStart() {
            }
 
            @Override
            public void onComplete(Void aVoid) {
            }
        }).build();
XLinkSDK.startTask(scanTask);

3、添加订阅设备

添加订阅设备时会绑定当前用户与设备的关系,使用XLinkAddDeviceTask

XLinkAddDeviceTask addTask = XLinkAddDeviceTask.newBuilder()
        //设置需要添加的设置,一般来自扫描得到的设备对象
        .setXDevice(device)
        // 设置本次订阅任务的回调
        .setListener(new XLinkTaskListner<XDevice>() {
            @Override
            public void onError(XLinkCoreException xLinkErrorCode) {
            }
             
            @Override
            public void onStart() {
            }
             
            @Override
            public void onComplete(XDevice xDevice) {
                //订阅成功返回设备对象
            }
        })
        .build();
XLinkSDK.startTask(addTask);

4、设备控制

设备控制分为两个操作,分别是获取数据端点和设置数据端点操作,两个操作分别对应了两个任务。其中数据端点的详细说明可查阅附录,此处可以先理解为获取设备的控制属性

  • 获取数据端点
// 查询数据端点的值
XLinkGetDataPointTask getTask = XLinkGetDataPointTask.newBuilder()
        .setXDevice(xDevice)
        .setListener(new XLinkTaskListener<List<XLinkDataPoint>>() {
            @Override
            public void onError(XLinkCoreException e) {
            }
             
            @Override
            public void onStart() {
            }
             
            @Override
            public void onComplete(List<XLinkDataPoint> xLinkDataPoints) {
                //返回获取到的数据端点
            }
        })
        .build();
XLinkSDK.startTask(getTask);
  • 设置数据端点
//修改数据端点,控制设备
XLinkSetDataPointTask setTask = XLinkSetDataPointTask.newBuilder()
    .setXDevice(xDevice)
    .setDataPoints(dataPoints)
    .setListener(new XLinkTaskListener<XDevice>() {
        @Override
        public void onError(XLinkCoreException e) {
        }
         
        @Override
        public void onStart() {
        }
         
        @Override
        public void onComplete(XDevice xDevice) {
            //设置成功返回操作的设备对象
        }
    })
    .build();
XLinkSDK.startTask(setTask);

5、移除设备

移除设备会将设备删除掉并取消与用户的绑定关系,使用XLinkRemoveDeviceTask

XLinkRemoveDeviceTask removeTask = XLinkRemoveDeviceTask.newBuilder()
        //需要删除的设备,可以通过XLinkDeviceManager获取到对应的设备
        .setXDevice(device)
        .setListener(new XLinkTaskListener<String>() {
            @Override
            public void onError(XLinkCoreException e) {
            }
             
            @Override
            public void onStart() {
            }
             
            @Override
            public void onComplete(String result) {
                //移除成功
            }
        }) 
        .build();
XLinkSDK.startTask(removeTask);

6、同步设备列表

在添加订阅成功设备之后,当前用户会与该设备存在绑定关系,在任何时候都可以从云端同步到该设备并进行设备的控制操作,使用XLinkSyncDeviceListTask

XLinkSyncDeviceListTask syncTask = XLinkSyncDeviceListTask.newBuilder()
        //同步设备后是否需要进行本地连接,默认为true
        .setConnectLocal(false)
        //设置同步设备的监听事件
        .setListener(new XLinkTaskListener<List<XDevice>>() {
            @Override
            public void onError(XLinkCoreException e) {
            }
             
            @Override
            public void onStart() {
            }
             
            @Override
            public void onComplete(List<XDevice> devices) {
                //同步成功返回当前设备列表
            }
        })
        .build();
XLinkSDK.startTask(syncTask);

四、更新说明

日期 说明
2018.09.04 修正代码表述有误的问题
没找到需要的文档?
你可以提交工单反馈 或 阅读常见问题